<?php
/**
 * Created by PhpStorm.
 * User: fengdh
 * Date: 2019/8/5
 * Time: 14:58
 */

namespace business\elasticsearch\models;

class SupplierModel extends \yii\elasticsearch\ActiveRecord
{
    public function attributes()
    {
        return [
            'supplierId', //供应商id
            'companyName', //供应商名称
            'shortName', //供应商简称
            'companyNamePinyin', //公司名拼音
            'isFamousSupplier', //是否知名(网络名企)
            'isGoldenSupplier', //是否金牌
            'isPlatinumSupplier', //是否铂金
            'isDiamondSupplier', //是否砖石
            'isTop', //是否砖石
            'regCapital', //供应商注册资金
            'serviceLocationCode', //服务区域code
            'serviceLocationName', //服务区域
            'companyIntro', //公司介绍
            'businessScope', //业务范围
            'branchAddress', //分支机构所在地
            'establishYear', //成立年份
            'regLocationCode',  //注册地区code
            'regLocationName', //注册地区
            'regLocationCity', //注册城市
            'honorCount', //企业荣誉数量
            'basicCategoryCode', //基础分类code
            'basicCategoryName', //基础分类
            'qualificationCount', //服务资质数量
            'userJSON', //供应商的用户信息(金牌供应商取管理员，非金牌供应商取分数最高的)
            'projectCount', //项目数
            'awardBidName', //中标名称
            'awardBidDeveloperName', //中标开发商
            'awardBidCount', //中标数
            'productCount', //供应商已发布(上架)产品数量
            'isStoraged', //是否被入库
            'hasEnoughRegCapital', //注册资本是否大于1000W
            'hasEnoughContactors', //联系人是否大于3个
            'hasEnoughProducts', //是否有产品
            'isCertificationCompany', //是否认证（签约）公司
            'livenessScore', //活跃度得分
            'indexCreatedTime', //创建时间
            'basicCategoryCode1', //一级基础服务分类code
            'basicCategoryCode2', //二级基础服务分类code
            'basicCategoryCode3', //三级基础服务分类code
            'basicCategoryName1', //一级基础服务分类
            'basicCategoryName2', //二级基础服务分类
            'basicCategoryName3', //三级基础服务分类
            'operationCategoryCode', //运营分类code
            'operationCategoryName', //运营分类
            'operationCategoryCode1', //一级运营分类code
            'operationCategoryCode2', //二级运营分类code
            'operationCategoryCode3', //三级运营分类code
            'operationCategoryName1', //一级运营分类
            'operationCategoryName2', //二级运营分类
            'operationCategoryName3', //三级运营分类
            'awardBidProjectLocationCode', //中标地区code
            'awardBidProjectLocationName', //中标地区
            'awardBidCategoryCode', //中标分类code
            'awardBidCategoryName', //中标分类
            'supplierType', //供应商类型
            'supplierKeywords', //供应商关键词设置
            'qualificationCode', //认证资质code
            'qualificationName', //认证资质
            'projectName', //招标项目
            'inStorageCount', //入库数
            'recommendCount', //推荐数
            'projectLocationCode', //项目所在地code
            'projectLocationName', //项目所在地
            'projectDeveloperName', //项目开发商
            'projectCategoryCode', //项目分类code
            'projectCategoryName', //项目分类
            'provinceCode', //省份code
            'cityCode', //城市code
            'provinceName', //省份名字
            'cityName', //城市名字
            'hundredCount', //百强战略开发商数量
            'regRecruitCount', //招募数据
            'recruitUserInfo', //招募用户信息
//            'hundredDeveloperShortName', //百强开发商简称
//            'isHundred', //是否有百强战略合作单位
//            'ylBigDataCount' //云链大数据数量
        ];
    }

    public static function index()
    {
        return 'supplier';
    }

    public static function type()
    {
        return 'my_type';
    }

    public static function regLocationCode(string $code)
    {
        $codes = explode(',', $code);
        return ["terms" => ["regLocationCode.keyword" => $codes]];
    }
    public static function serviceLocationCode(string $code)
    {
        $codes = explode(',', $code);
        return ["terms" => ["serviceLocationCode.keyword" => $codes]];
    }

    public static function supplierType($type)
    {
        return ['term' => ['supplierType' => $type]];
    }

    public static function projectCount($min = 0, $max = null)
    {
        $range = ['from' => $min];
        !empty($max) && $range['to'] = $max;
        return ['range' => ['projectCount' => $range]];
    }

    public static function operationCategoryCode($code, $level = 1)
    {
        if (is_array($code)) {
            return ['terms' => ['operationCategoryCode'.$level => $code]];
        } else {
            return ['term' => ['operationCategoryCode'.$level => $code]];
        }
    }

    public static function regCapital($min = 0, $max = null)
    {
        $range = ['from' => $min];
        !empty($max) && $range['to'] = $max;
        return ['range' => ['regCapital' => $range]];
    }



}